package cn.pro.jasmine;

import java.lang.reflect.Field;
import java.lang.reflect.Method;

public class AppRef {
    // 反射 ---> 找
    public static void main(String[] args) throws Exception {
        // 加载某个类，反射类，得到类对象，即：H
        Class<?> H = Class.forName("cn.pro.jasmine.Human");
        // 实例化，得到类的对象（类的实例），即 o
        Object o = H.newInstance();

        // 反射字段，得到的是字段对象
        Field name = H.getDeclaredField("name");
        // 使字段具备可访问的能力
        name.setAccessible(true);
        // 为字段赋值
        name.set(o, "Timor");

        // 反射方法，得到方法对象，即：getName
        Method getName = H.getMethod("getName");
        Object result = getName.invoke(o);
        System.out.println(result);
    }
}